package com.itdr.utils;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;

import java.util.concurrent.TimeUnit;

/**
 * ClassName: RedisUtil
 * 日期: 2020/11/14 9:48
 *
 * @author Air张
 * @since JDK 1.8
 */
@Component
public class RedisUtil {
    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    @Value("${redis.key.rlg.prefix}")
    private String REDIS_KEY_PREFIX_RLG;    //键前缀
    @Value("${redis.key.rlg.expire}")
    private Long RLG_EXPIRE_SECONDS; //缓存时间

    // 存储数据并设定过期时间
    public void set(String key, String value) {
        stringRedisTemplate.opsForValue().set(REDIS_KEY_PREFIX_RLG + key, value);
        stringRedisTemplate.expire(REDIS_KEY_PREFIX_RLG+key, RLG_EXPIRE_SECONDS, TimeUnit.SECONDS);
    }

    // 获取数据
    public String get(String key) {
        return stringRedisTemplate.opsForValue().get(REDIS_KEY_PREFIX_RLG + key);
    }

    // 移除数据
    public void remove(String key) {
        stringRedisTemplate.delete(REDIS_KEY_PREFIX_RLG+key);
    }

    // 自增操作
    public Long increment(String key, long delta) {
        return stringRedisTemplate.opsForValue().increment(key, delta);
    }
}
